import request from '@/utils/request'

/**
 * 获取管理员列表
 * @param {Object} params - 查询参数
 */
export function getAdminList(params) {
  return request({
    url: '/admin/admins',
    method: 'get',
    params
  })
}

/**
 * 获取管理员详情
 * @param {number} adminId - 管理员ID
 */
export function getAdminDetail(adminId) {
  return request({
    url: `/admin/admins/${adminId}`,
    method: 'get'
  })
}

/**
 * 创建管理员
 * @param {Object} data - 管理员数据
 */
export function createAdmin(data) {
  return request({
    url: '/admin/admins',
    method: 'post',
    data
  })
}

/**
 * 更新管理员
 * @param {number} adminId - 管理员ID
 * @param {Object} data - 管理员数据
 */
export function updateAdmin(adminId, data) {
  return request({
    url: `/admin/admins/${adminId}`,
    method: 'put',
    data
  })
}

/**
 * 删除管理员
 * @param {number} adminId - 管理员ID
 */
export function deleteAdmin(adminId) {
  return request({
    url: `/admin/admins/${adminId}`,
    method: 'delete'
  })
}

/**
 * 更新管理员状态
 * @param {number} adminId - 管理员ID
 * @param {number} status - 状态 (0:禁用, 1:启用)
 */
export function updateAdminStatus(adminId, status) {
  return request({
    url: `/admin/admins/${adminId}/status`,
    method: 'put',
    data: { status }
  })
}

/**
 * 获取管理员角色
 * @param {number} adminId - 管理员ID
 */
export function getAdminRoles(adminId) {
  return request({
    url: `/admin/admins/${adminId}/roles`,
    method: 'get'
  })
}

/**
 * 更新管理员角色
 * @param {number} adminId - 管理员ID
 * @param {Array} roleIds - 角色ID数组
 */
export function updateAdminRoles(adminId, roleIds) {
  return request({
    url: `/admin/admins/${adminId}/roles`,
    method: 'put',
    data: { role_ids: roleIds }
  })
}

/**
 * 获取管理员权限
 * @param {number} adminId - 管理员ID
 */
export function getAdminPermissions(adminId) {
  return request({
    url: `/admin/admins/${adminId}/permissions`,
    method: 'get'
  })
}

/**
 * 更新管理员租户
 * @param {number} adminId - 管理员ID
 * @param {number} tenantId - 租户ID
 */
export function updateAdminTenant(adminId, tenantId) {
  return request({
    url: `/admin/admins/${adminId}/tenant`,
    method: 'put',
    data: { tenant_id: tenantId }
  })
}

/**
 * 重置管理员密码
 * @param {number} adminId - 管理员ID
 * @param {string} newPassword - 新密码
 */
export function resetAdminPassword(adminId, newPassword) {
  return request({
    url: `/admin/admins/reset-password/${adminId}`,
    method: 'put',
    data: { new_password: newPassword }
  })
}
